import { ApiProperty, ApiPropertyOptional } from '@midwayjs/swagger'
import { Rule, RuleType } from '@midwayjs/validate'

/**
 * 查找部门列表传输对象
 */
export class FindDeptListDTO implements IFindDeptListDTO {
  @ApiPropertyOptional({ description: '部门名称' })
  @Rule(RuleType.string().empty(''))
  deptName: string

  @ApiPropertyOptional({ description: '状态' })
  @Rule(RuleType.string().empty(''))
  status: string
}

/**
 *  添加部门传输对象
 */
export class CreateDeptDTO implements ICreateDeptDTO {
  @ApiProperty({ description: '上级ID' })
  @Rule(RuleType.string().required().error(new Error('上级部门不能为空')))
  parentId: string

  @ApiProperty({ description: '部门名称' })
  @Rule(RuleType.string().required().error(new Error('部门名称不能为空')))
  deptName: string

  @ApiProperty({ description: '显示顺序' })
  @Rule(RuleType.number().required().error(new Error('显示顺序不能为空')))
  orderNum: number

  @ApiPropertyOptional({ description: '负责人' })
  @Rule(RuleType.string().empty(''))
  leader: string

  @ApiPropertyOptional({ description: '手机号码' })
  @Rule(RuleType.string().empty(''))
  phone: string

  @ApiPropertyOptional({ description: '邮箱' })
  @Rule(RuleType.string().empty(''))
  email: string

  @ApiPropertyOptional({ description: '状态' })
  @Rule(RuleType.string().empty(''))
  status: string
}

/**
 * 更新部门传输对象
 */
export class UpdateDeptDTO extends CreateDeptDTO {}
